01/02/24

інформатика 9 клас

 Урок 38.

Тема. Елемент керування «багаторядкове текстове поле». Алгоритми опрацювання табличних величин.

Завдання: 

1. Опрацювати  теоретичний матеріал.

Уведення та виведення значень табличної величини

Для введення та виведення значень елементів табличної величини в середовищі Lazarus можна скористатися багаторядковим текстовим полем (компонент (елемент керування) TMemo на вкладці Standard), яке можна розмістити на формі так само, як й інші компоненти (мал. 1.).



Мал. 1. Багаторядкове текстове поле і його властивості

Основне призначення компонента TMemo — робота з великою кількістю рядків (введення, відображення і редагування текстового матеріалу).

Для роботи з буфером обміну можна використовувати загальноприйняті гарячі клавіші: Ctrl + X — вирізати, Ctrl + C — копіювати; Ctrl + V — вставити.

Розглянемо властивості багаторядкового текстового поля:

Таблиця 1. Властивості елемента TMemo
ВластивістьОпис
NameІм’я компонента. Використовується в програмі для доступу до компонента і його властивостей, зокрема для доступу до тексту, введеного в поле.
TextТекст, що знаходиться в полі TMemo. Розглядається як єдине ціле.
LinesМасив рядків, відповідний вмісту поля. Доступ до рядка здійснюється за номером. Рядки нумеруються з нуля.
Lines.CountКількість рядків тексту в поле TMemo.
LeftВідстань від лівої межі поля до лівої межі форми.
TopВідстань від верхньої межі поля до верхньої межі форми.
WidthШирина поля.
HeightВисота поля.
FontШрифт, що використовується для відображення тексту.
ParentFontОзнака успадкування властивостей шрифту батьківського елемента.
WantReturnsКлавіша для введення кінця рядка: TRUE — клавіша ENTER; FALSE — поєднання клавіш CTRL + ENTER.
WordWrapПерехід в початок наступного рядка при введенні довгих рядків: TRUE — проводиться автоматично; FALSE — не проводиться. Прі ввімкненій горизонтальній смузі прокрутки ця властивість ігнорується.
ScrollBarВикористання смуги прокрутки, якщо текст великий і не поміщається в компоненті TMemo:
ssNone — смуги прокрутки відсутні;
ssHorizontal — встановлено горизонтальна прокрутка;
ssVertical — встановлено вертикальна прокрутка;
ssBoth — встановлені дві смуги прокрутки.
ReadOnlyДозволяє або забороняє редагування тексту. (Програмно все одно текст можна додавати).

Введення даних за допомогою поля TMemo зводиться до циклу, в якому, за допомогою властивості Lines, зчитуються рядки тексту. Наприклад:

Для поля TMemo із ім'ям Memo1

procedure TForml.ButtonlClick(Sender: TObject);
var a: array [0..9] of reali: integer;
begin
  for i := 0 to 9 do
  a[i] := Memol.Lines[i]// дані з рядків багаторядкового текстового поля присвоїти відповідним елементам табличної величини a
end;

Для введення числових величин дані з рядків переводять у числа за допомогою функції StrToFloat. Наприклад:

Для поля TMemo із ім'ям Memo1

procedure TForml.ButtonlClick(Sender: TObject);
var a: array [0..9] of reali: integer;
begin
  for i := 0 to 9 do
  a[i] := StrToFloat(Memol.Lines[i])// дані з рядків багаторядкового текстового поля перевести в числа та присвоїти відповідним елементам табличної величини a
end;

Для виведення табличної величини за допомогою поля TMemo використовують метод Lines.Append. Цей метод дозволяє додавати до тексту в багаторядковому полі новий рядок. Тому застосовуючи цей метод в циклі можна вивести табличну величину в текстове поле TMemo. Перед виведенням в багаторядкове текстове поле його слід очистити за допомогою методу Clear. Наприклад:

Для поля TMemo із ім'ям Memo1

procedure TForml.ButtonlClick(Sender: TObject);
var a: = ["один","два","три","чотири","п'ять","шість","сім","вісім","дев'ять"]i: integer;
begin
  Memo1.Clear//очистити багаторядкове текстове поле
  for i := 0 to 9 do
  Memo1.Lines.Append(a[i])// вивести значення елементів табличної величини в рядки другого багаторядкового текстового поля
end;

Для виведення числових величин дані з чисел переводять у рядки за допомогою функції FloatToStr. Наприклад:

Для поля TMemo із ім'ям Memo1

procedure TForml.ButtonlClick(Sender: TObject);
var a: = [1,2,3,4,5,6,7,8,9]i: integer;
begin
  Memo1.Clear//очистити багаторядкове текстове поле
  for i := 0 to 9 do
  Memo1.Lines.Append(FloatToStr(a[i]))// вивести значення елементів табличної величини в рядки другого багаторядкового текстового поля
end;


Завдання 1. Ввести значення елементів табличної величини з 10 чисел, що містяться в рядках багаторядкового текстового поля, піднести ці числа до квадрата і вивести їх в інше багаторядкове текстове поле.

Рішення

Побудова форми. Розмістимо на формі два багаторядкових текстових поля з іменами Memo1 і Memo2 та встановимо для них значення властивостей Height = 180, ScrollBars = ssVertical. Розмістимо на формі також кнопку, установимо для неї Caption = ‘До квадрата’ (мал. 2).


Мал. 2. Вікно виконання проекту

Написання коду. Створимо обробник події Click для кнопки.

procedure TForm1.Button1Click(Sender: TObject);
var a: array [0..9] of reali: integer;
begin
  for i := 0 to 9 do
  a[i] := StrToFloat(Memo1.Lines[i])// дані з рядків першого багаторядкового текстового поля перевести в числа і присвоїти відповідним елементам табличної величини
  for i := 0 to 9 do
  a[i] := a[i] * a[i]// піднести значення елементів табличної величини до квадрата
  Memo2.Clear// очистити друге багаторядкове текстове поле
  for i := 0 to 9 do
  Memo2.Lines.Append(FloatToStr(a[i]))// вивести значення елементів табличної величини в рядки другого багаторядкового текстового поля
end;

2. Виконати практичне завдання

Зміст завдання ТУТ

Немає коментарів:

Дописати коментар